23

» WarCraft 3 / Не меняется рельеф

Похожие вопросы:

ответ
Меньше чем -128 ты ландшафт НИКАК ВООБЩЕ НЕ опустишь (хотя, можешь перепилить движок варика).
ответ
сразу видно, человек с большим опытом редактора
ответ
текстуры склона заменяются путями ReplaceableTextures\Cliff\Cliff0.blp и ReplaceableTextures\Cliff\Cliff1.blp
ответ
~8gabriel8:
А в игре тоже поменялось или только в редакторе?
ответ
+- GetLocationZ(Ltargetpoint)

23

» WarCraft 3 / Урон и заклинания при помощи триггеров

Похожие вопросы:

ответ
юнит получает урон
1 ответ на 2 вопроса
ответ
События в помощь. Почитайте про событийно-ориентированные языки программирования. Jass является таким
ответ
Sicre, только на 1 вопрос будем отвечать в этой теме, у тебя за убийство все пачки или за каждого юнита отдельный дроп?
Если за каждого, то по событию юнит определённого типа умирает, создвай предмет в точке смерти, можно также прописать шанс.
Если же ты работаешь с группой и даёшь общую награду за смерть группы, тогда надо группу создать, обозвать её например (пауки у фантана), добавить туда юнитов, и отслеживать смерть всей группы, ну и так будет каждый раз собственно

23

» WarCraft 3 / Ошибка при сохранение карты

Похожие вопросы:

ответ
приходиться угадывать
так не поймешь, чего у тебя там не работает. Опиши ПОДРОБНО чего сделать не так, что она не работает. раньше работала?
Скидывай скрин ошибки, карту. В папке варкрафт есть папка "Errors" там текстовик нужно найти.
предположение
Пробовал выключить или временно удалить все триггеры? если без триггеров нормально работает - вывод?
похоже автор какую-нибудь карту открыл, отредактировал ландшафт. Она там мб, к примеру, на cjass написано. попробуй xgm.guru/p/wc3/178775 Если ошибка будет на jngp, там есть в папке jngp есть папка "logs" тоже ошибки хранит
Еще может быть нужно включить UMS. Даже, если без триггеров не сохраняет, возможно какие-нибудь за какие-нибудь ограничения (кол-во деревьев, размер карты и прочее).
ответ
Объект current не является объектом структуры.
ответ
Попробуй мою версию, там ScExp должен работать. Но это для вц3 1.24 и ниже

По scexp можешь прочекать разницу в wehack.lua с твоим jngp

xgm.guru/p/wc3/jassnewgenpack-r вот тут последняя сборка jngp с модулем scexp
ответ
Проверь, что бы в пути к редактору, не было русской кириллицы. Jngp её не переваривает.
ответ
В редакторе ландшафта в меню cJass отключи все галки.

23

» Администрация XGM / Оскорбление в дискорде

Похожие вопросы:

ответ
Не оскорбление, но за троллинг сойти может, давайте заканчивайте детский сад. Новый год подходит, съешьте лучше мандаринку 🍊

23

» WarCraft 3 / Задержка в карте.

Принятый ответ
Похожие вопросы:

ответ
Утечки в триггерах, надо код карты исправить.
ответ
ALL_Remove = false
чтотооченьважное
ALL_Remove = true
как сложно то было
ответ
darkoms, исходные позиции я уже выставил, но это не важно
просто вносишь нужные изменения в карте, сохраняешь в редакторе
потом берешь оптимизируешь с Vexorian Map Optimizer
и открываешь уже в варкрафте

галочки в оптимизиаторе как на скриншоте

23

» WarCraft 3 / OrderId2String

Похожие вопросы:

ответ
Функция не передаёт ни каких данных в переменную.
ты ошибаешься
OrderId2String('Aeye') возвращает "" (пустая строка) т.к. приказ 'Aeye' не имеет строкового представления
"order=" + "" = "order="
всё работает
ответ
NewToJass, vjass это диалект
он ничего не убирает а лишь дополняет
если в vjass чтото не работает то и в jass это тоже не работает
ответ
GetSpellAbilityId( )
ответ
Нашёл причину вылета.
У героя был Спеллбук, в спеллбуке была пассивная способность аура "Боевой марш". В процессе игры герой умирал и воскрешался. Если после воскрешения сохраниться и загрузиться вновь, то вылетает с ошибкой.
Исправил следующим образом. Отследил сохранения и в этом триггере отключал все пассивки в Спелбуке (SetPlayerAbilityAvaible() на false). Через малое время после сохранения вновь их активирую.

23

» WarCraft 3 / Книга заклинаний

Похожие вопросы:

ответ
bazeba:
В способностях. гдето рядом с описаниями, (не могу скрин послать на данный момент) есть пунктик с ID приказа, просто поставь различные, по сути должно помочь
это только у канала работает, на остальных абилках даже если поменять id - то ничего не произойдет
ответ
не ясно какая проблема. хочешь чтобы не смешивалось содержимое внутри спелбуков? меняй приказ у спелбуков см. тему
ответ
Black Soul:
Сначала добавь все способности, которые тебе нужны, в книгу заклинаний. Во время инициализации карты заблокируй для игрока способности, которые открываются при выполнении заданий.
После выполнения заданий разблокируй их.
ответ
~8gabriel8:
Там есть для Игрока (или Игры) действие Force UI Key. Назначаешь горячую клавишу книге и при событии выбора указываешь в этом действии свою клавишу.
Только событие выбора может реагировать с небольшой задержкой, достаточной, чтобы рассмотреть кнопки на панели приказов. Если это надо обойти, есть два варианта:
  • периодическим таймером на 0.03 секунды проверять, выбран ли юнит;
  • сделать два одинаковых типа юнитов, один из которых с классификацией страж, при выборе стража накладывать морф и открывать книгу (может потребоваться задержка), при снятии выбора накладывать обратный морф. Статья про морфы есть у quq_CCCP.
ответ
Fly123, ну сделай руной, и нафига писать триггер если есть абилки требующие золот и дерево?

23

» WarCraft 3 / Текстуры и модели

Похожие вопросы:

ответ
Я смотрю через MPQEditor. Открываешь с помощью него war3.mpq или War3x.mpq и забираешь любые модели и текстуры.
ответ
Dima131, импортируешь текстуру, а затем прописываешь ей путь, как у текстуры, которую использует модель
ответ
~8gabriel8:
Идея!
В модели один слой, а можно выделить ветви и на новый слой их, а там уже можешь делать смещение без коверкания наложения текстуры.
Что-то с моделью этой, не получается провернуть указанную операцию, постоянно вылетает ошибка.
ответ
Копируй модельку тролля, потом вставляй в модельку раптора не через cyrl + V, а через специальную вставку.
Выбираешь любую вершину (только 1) , за тем жмешь на: правка -> специальная вставка.
Разумеется текстура тролля и динозавра должны быть в одной папке.
ответ
Ruti Bergison:
Модель дублировать сюда:

23

» WarCraft 3 / World Editor.

Похожие вопросы:

ответ
Причина в последней обнове. Запускать редактор либо через лауйнчер, либо через ярлык с -launch.
ответ
Запихни свой if в свой цикл. У тебя сделано наоборот.

23

» WarCraft 3 / Поглотить с эффектом

Похожие вопросы:

ответ
должен сразу предупредить что делать за тебя никто не будет
теперь по твоим вопросам
  1. чтобы нельзя было кликать скрываешь, даёшь москиты, делаешь видимым
  2. действие проиграть звук и указываешь твою фразу
  3. выбираем всех подходящих(враги,живые) юнитов в радиусе от точки каста и создаём по дамми юниту(юнит без модели, без атаки, с москитами, с нужной способность, время жизни юнита 1 сек) для каждого подходящего юнита приказывая дамми юниту применить нужную способность в подходящего юнита
таким образом каждый дамми юнит применит нужную способность (в твоём случае корни) в 1 подходящего юнита для которого он и был создан а потом исчезнет
  1. система отлова урона
  2. морф юнита либо орбы
всё что я не описал есть в статьях
тебе нужны первые 2 раздела ("Основы" и "Триггеры и объекты")

23

» WarCraft 3 / юниты пропадают после запуска карты

Принятый ответ
Похожие вопросы:

ответ
~8gabriel8:
Запускать кампанию надо из игры, а не редактора, иначе данные кампании не загружаются. И не сохраняй картинки для Интернета в формате *.bmp, используй *.jpg, либо *.png.

23

» WarCraft 3 / Высота подъема

Похожие вопросы:

ответ
Модель исчезает целиком? Если да, то она просто уходит из поля зрения камеры, и модель не является битой, если хочешь видеть модель во время прыжка, сделай либо камеру выше, либо прыжок ниже.
ответ
Есть вариант: сделать триггер с периодическим событием, действие которого будет поднимать камеру обратно каждые (х) секунд. А в своей карте я сделал через диалог.

23

» WarCraft 3 / Функция Анимации

Похожие вопросы:

ответ
Я так и не понял чем была вызвана эта проблема, но точно не из-за бокса. Скорее из-за камеры. Поставил вейт перед проигрыванием анимации и всё решилось.
ответ
Ошибка при работе с MdlVis. Попробуй открыть модель в версии 1.40, там должно изменение видимости в ключевых кадрах должно заработать. Однако советую сделать копию модели, т.к. 1.40, если не изменяет память, ломает уже настроенную видимость.
ответ
~8gabriel8:
Ключевые кадры - КК обозначены на шкале анимации синим, если ты попал в этот кадр, то его номер справа из чёрного станет столь же синим. Например, анимация длится 2000 кадров, от 1000 до 3000 на шкале, а охота сократить её вдвое, для этого просто посчитаю новую позицию КК. Пусть после начального следующий КК стоит на месте 1333, потом 1500 и так далее; для определения позиции вычитаю 1000, делю примерно на два, прибавляю 1000, так первый кадр должен сместиться с 1333 на 1167; попадаю на шкале в 1333, нажимаю C или Ctrl+C, перехожу на 1167 и нажимаю Ctrl+V, а потом убираю кадр на 1333, что можно сделать, попав в него и нажав Del, либо выделив участок с ним и в меню по правой клавише нажав Очистить. Не помню точно, но с выделением на шкале есть какие-то особенности, либо там тянуть выделение надо не левой кнопкой мыши, а правой, либо не всегда срабатывает с первого раза, либо с начала шкалы или до конца не выделяется, в любом случае можешь просто щёлкнуть в одно место, зажать Shift и щёлкнуть во второе место для выделения. Далее 1500 нужно перенести на 1250, всё опять повторяешь. И так до конца шкалы. Потом длительности анимации указываешь не с 1000 до 3000, а с 1000 до 2000.
Как вариант, можно не менять длительность анимации, а сдвинуть пораньше КК, где юнит наносит урон, типа замах укоротить.
P. S. Сначала было очень неудобно это выполнять, но после смещения нескольких шкал анимаций стало получаться весьма шустро. Только нужно постоянно быть внимательным, чтобы не сбиться в расчётах нового местоположения КК, и помнить, чтобы не удалять КК на старом месте раньше установки на новое, а ещё, что C или Ctrl+C были точно нажаты для этого кадра, а не остались от предыдущего)
ответ
Nemezid:
DarkLigthing, что-то не выходит. Пробую в reforged, если что
Вот карта пример, здание будет постепенно возвращаться к началу строительства. (Reforged)
ответ
call SetUnitFlyHeight( unit, 0, 600 ) посадит за одну секунду юнита на землю при условии что его высота равна 600, ничего сложного, проверь ро как указал комментатор выше

23

» WarCraft 3 / Задержка анимации способности

Похожие вопросы:

ответ
Fireproof, попробуй в РО у юнита поменять "Графика - Анимация - обратный ход броска" и "Графика - Анимация - точка броска" на 0. Правда, это уберёт время каста для всех умений у этого юнита.
ответ
Проверь модель. Возможно анимация death проигрывает выстрел.
Кстати если её правильно поправить, то тебе и вейт не нужен будет. Сразу DestroyEffect()
ответ
EviLInside, скоро (после конкурса) выложу отдельной системой там очень всё просто будет, контр С контр В, и вызываем когда нужно, но там много нюансов:
  1. Каст тайм юниту по нулям в РО
  2. Касттайм у способностей канальных в РО по нулям
  3. Паузим юнита через новую паузу рефордж патча
  4. Визуально получаем примерно вот это
Смотри туда где написано "подготовка", там 0.4 и 0.2 секунды, и правильный код который подгоняет анимации
Я эту систему уже улучшил и она более гладкая нужна вообще для других вещей, чаще для поддреживаемых заклинаний, например Бураноподобных
Получается примерно как в Доте2, надо бар только кастомизировать нормально.
ответ
Чтобы узнать кото ударили сплешем, оттолкнуть и уронить нужно:
  1. Отловить урон
  2. Оттолкнуть юнитов
  3. Воспроизвести анимацию по индексу

23

» WarCraft 3 / крафт

Похожие вопросы:

ответ
Делаешь способность пустышку на основе "Канал", далее делаешь триггер с событием "Юнит начал направлять способность" в условиях ставишь
свою способность, а в действиях условиями на наличие предметов делаешь крафт. Всё что я тут написал - это отсылка к темам которые можно самому найти.
ответ
компилирует war3map.j какой-то утилитой в составе JNGP
JassHelper эта утилита, её можно через PowerShell отдельно от JNGP запускать.
Так-то можно даже просто pjass.exe (тоже в составе JNGP) запустить (через PowerShell), ведь в war3map.j код уже в JASS.

БОльшая часть строк находится в war3map.wts, его и нужно переводить, там находятся все описания способностей, юнитов, предметов и так далее, иногда даже просто мусор, который редактор забыл убрать.
Дам совет, у способностей нужно переводить только описания, имена в самой игре всё равно не отображаются. А ещё на них может быть завязан код (как у меня в карте), так что лучше их вообще не трогать.
С юнитами и предметами возможна такая же ситуация, но вот тут сложнее, ведь их имена отображаются в игре.
Потому перед переводом, нужно проверить war3map.j на наличие функций GetObjectName, GetItemName, GetUnitName. Если они есть, то понять, для чего они используются, а потом уже переводить.
Часть строк может быть в war3map.j, многие и переводить не нужно (пути к эффектам, например), но вот выводимые на экран сообщения перевести стоит.
ответ
В чем проблема написать функцию подсчета итемов по их Id (циклом делается), а уже там делать условие. Не знаю уровень автора, поэтому напишу псевдокодом
Если КоличествоПредметов(u,'I000') >= 2 Тогда
	УдалитьИтем(u,'I000')
	УдалитьИтем(u,'I000')
	ДатьИтемЮниту(u,'I001')
КонецЕсли
u - юнит, с которым работаешь
ответ
В условии поставь "И" функцию где надо мясо и 20 дерева(объедение эти 2 условия , а то жарится за халявные 20 дерева). Ну для крафта используй систему зарядов на предметах или считай их количество через условие в инвентаре, на подобии триггер с " жаркой мяса".

Вот готовку на костре починил и сделал крафт в кузне из железа и кожи.

23

» WarCraft 3 / Внимание вопрос

Похожие вопросы:

ответ
Сделай тогда так:
code
function Trig_SomeFunction_Conditions takes nothing returns boolean
    if GetSpellAbilityId() == 'SomeSpell' then
        call SomeAction
    endif
    return false
endfunction 

//=========
function InitTrig_SomeFunction takes nothing returns nothing
    set gg_trg_SomeFunction = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_SomeFunction, EVENT_PLAYER_UNIT_SPELL_EFFECT )
    call TriggerAddCondition( gg_trg_SomeFunction, Condition( function Trig_SomeFunction_Conditions ) )
endfunction
Ты сделаешь проверку в условии и там же запустишь функцию, без лишнего вызова Trig_SomeFunction_Actions . Но это почти одно и то же, что и второй вариант.
Что-то я не понял, что ты подразумеваешь под "порядком" Несколько условий?

Если у тебя несколько условий, то делай градацию, начиная с самого распространенного
code
function Trig_SomeFunction_Conditions takes nothing returns boolean
    if GetSpellAbilityId() == 'SomeSpell' then // Самое распространенное
    if GetUnitState(GetTriggerUnit()) > 100.0 then // Менее распространенное
    if ... then // И т.д. в порядке уменьшения вероятности несрабатывания
        call SomeAction
    endif
    endif
    ....
    return false
endfunction 

//=========
function InitTrig_SomeFunction takes nothing returns nothing
    set gg_trg_SomeFunction = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_SomeFunction, EVENT_PLAYER_UNIT_SPELL_EFFECT )
    call TriggerAddCondition( gg_trg_SomeFunction, Condition( function Trig_SomeFunction_Conditions ) )
endfunction
ответ
Один ресурс - один вопрос, читайте правила сайта.
ответ
фатал после игры может быть вызван
а) использованием malloc
б) копированием внутриигровых структур (например, структуру сплеша перенес от одного юнита другому, при чистке один раз адрес зачистился, а на втором проходе произошел краш)
в) неизвестным мне образом
ответ
Еще раз, 'Aams' - щит от магии, он дает маг имун и только. 'Aam2' - нейтрализует урон от магии, при этом в цель можно применять заклинания, обрати внимание там другой бафф.
ответ
описанная проблема это движок вара, а не ии. ничего с этим не сделать, на каждого игрока существует лимит юнитов которые нормально управляются, после идут статтеры

23

» WarCraft 3 / Нестандартный оплетеный рудник

Похожие вопросы:

ответ
Через что уничтожаешь? Если через килл, то конечно умирает и нейтральный.
  1. Если наносить от какого-то даммика урон в мильены, то не умрет нейтральный.
  2. Можно от даммика развеяние нежити за 0.01 сек.
  3. Заменять можно, внося значение золота в переменную и потом, создавая новый рудник, ставить количество золота в него из переменной, благо это даже в ГУИ реализовано.
ответ
XGM Bot:
Похожие вопросы:

ответ
оплетение рудника происходит методом замены объекта рудника на объект оплетённого рудника, никто не запрещает делать это вручную.
ответ
Через что уничтожаешь? Если через килл, то конечно умирает и нейтральный.
  1. Если наносить от какого-то даммика урон в мильены, то не умрет нейтральный.
  2. Можно от даммика развеяние нежити за 0.01 сек.
  3. Заменять можно, внося значение золота в переменную и потом, создавая новый рудник, ставить количество золота в него из переменной, благо это даже в ГУИ реализовано.
ответ
Ikobot:
Можно сделать способность на основе "превращения в зомби" с передачей контроля игроку. И сделать дамми работников, которые будут в невидимости таскать золото, в зависимости от кол-во рабов на борту рудника.
Можно сделать невидимое "Древо Жизни" которое привязано к зданию и живет до тех пор, пока живет главное здание, главное связать здания триггерно.
Я придумал закинуть пустить корни в книгу заклинаний и заблокировал ее, в вобщем оплетение работает, сейчас другая проблема в другом вопросе))